Users of modern operating systems and applications may be accustomed to using a “clipboard” to copy and paste a wide variety of data between different screens and applications. In addition to holding data items, some clipboard systems have the ability to represent or contain multiple formats for a given item. For example, when a user copies, say, a set of cells from a spreadsheet, the spreadsheet application may place those cells on the clipboard in multiple formats. For example, for the copied spreadsheet cells, a clipboard might contain a plain text representation, a formatted text representation (in one or more of a variety of formats), an image representation, an application-specific representation that contains all of the cell information, and so on. When a user pastes the spreadsheet cells into a particular application, the application may request or use a particular format. For example, a text editor may only understand and use the plain text representation, an image editing program may use the image representation, another instance of the same spreadsheet application may use the spreadsheet data, and so on.
While a clipboard system may have the capability of supporting multiple formats for the same item, it is not always the case that a particular format used or required by a destination is included in the format or formats provided by the source of the data. As just one example, a personal information management (PIM) application may have the ability to automatically create a contact, with the appropriate fields already populated, when the user pastes data that the PIM application recognizes as a contact. For example, the PIM application might recognize data formatted using the vCard standard. However, even when a source application has all of the information required to create a contact—the name, address, phone number(s), and so on—it may not know how to format this information in a specific format that may be required by some other application. Continuing this example, if the source provides the contact data in another format—like hCard—then the destination may not recognize the data as a contact and may not automatically create a contact using the pasted data.
As a result, the transfer of data between different applications may be limited to a lower fidelity representation, like strings of text. In this example, even if both a source and destination application understand contact data, if they do not exchange contact data in formats supported by both the source and destination applications then a user may still need to, for example, manually copy individual fields—like name, address, and so on—between applications.